package org.jcodetools.security.base64;

import java.io.UnsupportedEncodingException;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

/**
 * <div style="color:green;font-weight: bolder;">
 * 	<h3></h3>
 * 	&emsp;&emsp;描述：Base64加密工具
 * </div>
 * @author xiongyan
 * @date 2016年8月3日 下午5:34:02
 * @history
 * 	<add>
 * 		@functionName 
 *  	@author 
 *  	@date 2016年8月3日 下午5:34:02
 *  	@remark 
 * 	</add>
 * 	<upd> 
 * 		@functionName 
 *  	@author 
 *  	@date 2016年8月3日 下午5:34:02
 *  	@remark 
 * 	</upd>
 */
@SuppressWarnings("restriction")
public class Base64 {
	/**
	 * <div style="color:green;font-weight: bolder;">
	 * 	<h3></h3>
	 * 	&emsp;&emsp;描述：加密
	 * </div>
	 * @author xiongyan
	 * @date 2016年8月3日下午5:34:46
	 * @param 
	 * @throws
	 * @return
	 */
	public static String encode(String str) {
		byte[] b = null;
		String s = null;
		try {
			b = str.getBytes("utf-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		if (b != null) {
			s = new BASE64Encoder().encode(b);
		}
		return s;
	}

	/**
	 * <div style="color:green;font-weight: bolder;">
	 * 	<h3></h3>
	 * 	&emsp;&emsp;描述：解密
	 * </div>
	 * @author xiongyan
	 * @date 2016年8月3日下午5:35:06
	 * @param 
	 * @throws
	 * @return
	 */
	public static String decode(String s) {
		byte[] b = null;
		String result = null;
		if (s != null) {
			BASE64Decoder decoder = new BASE64Decoder();
			try {
				b = decoder.decodeBuffer(s);
				result = new String(b, "utf-8");
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return result;
	}
	
}
